package com.yueke.gemini.utils;

import java.util.Iterator;

/**
 * java自定义实现Iterable接口
 *Iterable接口实现
 1.Iterable包含一个生成Iterator的iterator()方法，并且可使用Foreach遍历。
 2.必须要实现iterator()方法，并且要实现iterator的hasNext和next方法
 * @param <T>
 */
public class IterablerImpl<T> implements Iterable<T> {
    private T[] t = null;

    public IterablerImpl(T[] t) {
        this.t = t;
    }

    @Override
    public Iterator<T> iterator() {
        return new Iterator<T>() {

            private Integer index = 0;

            @Override
            public boolean hasNext() {
                return index < t.length;
            }

            @Override
            public T next() {
                return t[index++];
            }
        };
    }

    public static void main(String[] args) {
        IterablerImpl<String> iterablerImpl = new IterablerImpl<String>(new String[]{"hello", "world"});
        for (String string : iterablerImpl) {
            System.out.println(string);
        }
    }
}
